The demands of work and schooling, as well as romantic attachments, all tend to disperse childhood friends and nuclear families as young people mature into adulthood. As a result, and further due at least in part to the cost and inconvenience of long distance travel, it may be desirable to share group entertainment experiences with family and friends without leaving home. For example, a married couple with young children may wish to watch a holiday movie from home while sharing that viewing experience with the children's grandparents living in another state, or a group of college friends may want to collectively watch a sporting event involving their alma mater.
Conventional solutions for enabling remote group participation in a shared media consumption experience suffer from shortcomings including poor audio/video quality and poor synchronization. These prior solutions tend to fall into one of several categories. One conventional category of solutions requires that remote viewers manually coordinate their inputs to their media players by, for example, pushing “play” at the same time. However, those solutions typically suffer from lack of playout synchronization due to human error, or desynchronization over time due to frame rate and buffering issues.
Another conventional category of solutions relies on third party services that capture and rebroadcast media content to the members of the remote group. However, those conventional solutions typically provide relatively poor audio and video quality due to the content being rebroadcast from the host's system instead of being fetched independently by each viewer device. Moreover, because one member of the remote group must typically act as a host controlling the broadcast, the resulting group experience is not truly interactive.
Issues of synchronization of digital entertainment also arise in multiplayer online gaming. In these environments, remote gaming devices render the gaming environment locally and communicate user inputs (e.g., regarding character movements and actions) with a central server, while receiving inputs on the movements of other users' characters and actions from the central server. Latency issues are dealt with by the remote devices locally making predictions of character movements and actions, which are then over-ridden by server instructions only when necessary. These solutions to latency reduction and synchronization are not applicable to audio/video broadcast, streaming, and playback environments.